With the rapidly growing trend of mobile and remote data access over high-speed communication networks, such as provided by long term evolution (LTE) cellular networks, the accurate delivery and deciphering of data streams has become increasingly challenging and difficult. For example, in LTE, 5G and other wireless communication systems, transmitted payload data are segmented into Transport Blocks (TBs). A TB cyclic redundancy check (CRC) value is attached to the TB that allows a receiver to determine if the TB is received correctly. Each TB with attached TB CRC is further divided into a number of Code Blocks (CBs). Each CB is encoded separately. One or more CBs can form a CB Group (CBG). A CBG CRC is attached to each CBG that allows the receiver to check if a CBG is received correctly. The encoded CBGs (including attached CRCs) are concatenated and transmitted to a receiving device.
In conventional systems, the CBGs are received at the receiving device and the TB and TB CRC are reassembled from the received CBGs. The entire TB is divided by the appropriate polynomial to produce a calculated CRC value that is compared against the received CRC value. If the CRC values match, the TB is successfully received. However, conventional system need to wait to receive all the CBGs to reconstruct the TB. Once the TB is reconstructed, the CRC polynomial division is performed on the entire received TB to determine whether the TB was successfully received. This process can be very time consuming and inefficient.
Therefore, it is desirable to have a way to efficiently determine if a TB is successfully received at a receiver.